package Bk.basic;

public class J11_SungJuk_v4 {

	public static void main(String[] args) {
		// 객체지향 기법을 이용해서 성적처리 프로그램 작성
		J11SungJuk sj = new J11SungJuk();
		sj.name = "백군";
		sj.kor = 89;
		sj.eng = 98;
		sj.mat = 99;
		// 초기화가 불편 - 생성자를 이용할 것!
		sj = new J11SungJuk( "빽군", 87, 89, 97 );
		
		System.out.println( sj.name );
		System.out.println( sj.kor );
		System.out.println( sj.eng );
		System.out.println( sj.mat );
		System.out.println( sj.getTotal() );
		System.out.println( sj.getAverage() );
		//System.out.println( sj.getGrade() );
		sj.getGrade();							//void형 메서드 호출!!
		System.out.println( sj.grd );       //주의
		
		
		
		
		
		
		

	} // main

} // class

// 성적 데이터 : 이름, 국어, 영어, 수학, 총점, 평균, 학점
// 성적 메서드 : 총점구하기, 평균구하기, 학점구하기
// 					결과 출력하기
class J11SungJuk {
	String name;
	int kor;
	int eng;
	int mat;
	int tot;
	double avg;
	char grd;
	
	public J11SungJuk() {  	} // 기본 생성자
	public J11SungJuk( String name, int kor, int eng, int mat ) { 
		this.name = name;
		this.kor = kor;
		this.eng = eng;
		this.mat = mat;
		// this 접두사는 클래스의 멤버변수를 가리킴
		// 만일, 기본생성자 없이 사용자 정의 생성자만 만든다면?
	} // 사용자 정의 생성자
	
	//메서드 정의
//	void getTotal () {
//		tot = kor + eng + mat;
//	}
//	void getAverage () {
	// int imsi = getTotal();
	// avg = imsi / 3;
//		avg = (kor + eng + mat) / 3;
//	}
//	void getGrade() {
//		switch( (int) ( ( kor + eng + mat ) / 3) ){ 
//		case 10: case 9: grd = '수'; break;
//		}
//	}   // 메서드의 반환값 유형을 무조건 void 로 지정
	int getTotal () {
		tot = kor + eng + mat;
		return tot;
	}
	double getAverage () {
		// int imsi = getTotal();
		// avg = imsi / 3;
		avg = getTotal() / 3;
		return avg;
	}
	void getGrade() {
		switch( ( int ) avg / 10 ){ 
		case 10: case 9: grd = '수'; break;
		case 8: grd = '우'; break;
		case 7: grd = '미'; break;
		case 6: grd = '양'; break;
		default : grd = '가' ;
		}
	}    // 메서드의 반환값 유형을 결과값의 종류에 따라 지정
	
} // J11SungJuk 









